import { defineStore } from 'pinia'

// 定义 Store, 命名建议： useXxxxStore
// 参数1：Store 的唯一标识
// 参数2：配置对象，可以提供 state actions getters
const useCounterStore = defineStore('counter', {
  // 相当于组件的 data
  state() {
    return {
      count: 80,
    }
  },
  // 相当于组件的 computed
  getters: {
    // ts 项目开发 getters 需要主动添加返回值类型注解，否则为 any
    double(): number {
      return this.count * 2
    },
  },
  // 相当于组件的 methods
  actions: {
    // 同步修改
    add() {
      this.count++
    },
    // 异步修改
    addAsync() {
      setTimeout(() => {
        this.count++
      }, 500)
    },
  },
})

// 导出 Store
export default useCounterStore
